﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace XQ.Framework.core
{
    public class SystemHelper
    {
        public static string RunExec(params string[] cmds)
        {
            if (!ValidateHelper.IsPlumpArray<string>(cmds)) { return string.Empty; }
            System.Diagnostics.Process p = null;
            try
            {
                p = new System.Diagnostics.Process();
                p.StartInfo.FileName = "cmd.exe";
                //要执行的程序名称
                p.StartInfo.UseShellExecute = false;
                p.StartInfo.RedirectStandardInput = true;
                //可能接受来自调用程序的输入信息
                p.StartInfo.RedirectStandardOutput = true;
                //由调用程序获取输出信息
                p.StartInfo.CreateNoWindow = true;
                //不显示程序窗口
                p.Start();//启动程序
                for (int i = 0; i < cmds.Length; ++i)
                {
                    string cmd = cmds[i];
                    try
                    {
                        //向CMD窗口发送输入信息：
                        p.StandardInput.WriteLine(cmd);//重启电脑（C#中不好做）
                    }
                    catch { }
                }
                p.StandardInput.Flush();
                p.StandardInput.Close();
                //获取CMD窗口的输出信息：
                return p.StandardOutput.ReadToEnd();
            }
            catch (Exception e)
            {
                return string.Empty;
            }
            finally
            {
                if (p != null) { p.Dispose(); }
            }
        }
    }
}
